package javasec.seed;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.registry.Registry;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.ArrayList;
import java.util.Properties;
import java.util.Map;
import java.util.HashMap;

import java.util.Vector;
import java.net.URLClassLoader;
import java.net.URL;

import java.util.Enumeration;
import java.util.jar.JarFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.lang.Math;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;


public interface ManagerSeedInterface extends Remote
{
	public String loadSeed(String filename, byte[] data) throws RemoteException;
	public String unloadSeed(String file) throws RemoteException;
	public String getName() throws RemoteException;
	public void shutdown() throws RemoteException;
	
	public ArrayList<SeedNotification> getNotifications(String queue) throws RemoteException;

	public ArrayList<String> listUsers()throws RemoteException;
	public String addUser(String username, X509Certificate key)throws RemoteException;
	public String deleteUser(String username) throws RemoteException;
	
	public int readPipe(int pipeID, String data) throws RemoteException;
	public int writePipe(int pipeID, String data) throws RemoteException;
}
